Precise Interprocedural Dependence Analysis of Parallel Programs ? Markus Müller - Olm
نویسنده
چکیده
It is known that interprocedural detection of copy constants and elimination of faint code in parallel programs are undecidable problems, if base statements are assumed to execute atomically. We show that these problems become decidable, if this assumption is abandoned. So, the (unrealistic) idealization from program verification “atomic execution of base statements” introduced in order to simplify matters, actually increases the difficulty of these problems from the point of view of program analysis: amazingly these problems become more tractable if we adopt a less idealized, more realistic model of execution. We introduce an effective abstract domain of antichains of dependence traces that allows us to perform a precise interprocedural dependence analysis in (nonatomically executing) parallel programs. The main idea is to trace sequences of dependences exhibited successively by program executions. We define operations on antichains of dependence traces and show that they precisely abstract the corresponding operations on sets of non-atomic program executions. Using these operations, we can analyze dependences by means of an abstract interpretation of constraint systems that characterize sets of program executions of interest. The result of the dependence analysis can in turn be used to detect all copy constants and to eliminate faint code. While the run-time of the algorithms is exponential in the number of program variables, it is polynomial in the program size. Hence, they are polynomial-time algorithms if the number of program variables is bounded. In order to justify their overall exponential run-time, we show that both detection of copy constants and elimination of faint code are intractable (NP-hard) even when the atomic execution idealization is abandoned. This holds already for parallel programs without loops or procedures.
منابع مشابه
Precise Fixed Point Based Analysis of Programs with Thread-Creation
This paper presents an efficient, fixed point based algorithm for precise kill/gen analysis of interprocedural flow graphs with thread creation. The main idea of the algorithm is to separate a path reaching a control node into those steps required to reach the node and interfering steps, that are executed concurrently. These two parts are analyzed separately and combined afterwards. Exploiting ...
متن کاملGlobal Invariants for Analyzing Multi-threaded Applications
We exhibit an interprocedural framework for the analysis of multi-threaded programs based on partial invariants of a new kind of constraint systems which we call side-effecting. We explore the formal properties of these constraint systems and provide general techniques for computing partial invariants. We demonstrate the practicality of this approach by designing and implementing a reasonably e...
متن کاملA Generic Framework for Interprocedural Analysis of Numerical Properties
In his seminal paper [5], Granger presents an analysis which infers linear congruence relations between integer variables. For affine programs without guards, his analysis is complete, i.e., infers all such congruences. No upper complexity bound, though, has been found for Granger’s algorithm. Here, we present a variation of this analysis which runs in polynomial time. Moreover, we provide an i...
متن کاملComputing Interprocedurally Valid Relations in Affine Programs
We consider an abstraction of programs which preserves affine assignments exactly while conservatively dealing with other assignments and ignoring conditions at branches. We present an interprocedural analysis of such abstracted programs which for every program point v determines the set of all affine relations between program variables which are valid when reaching v. The runtime of this algor...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004